1. Field of the Invention
The present invention relates in general to communications systems, and more specifically to transmitters and/or receivers utilizing encoded data.
2. Description of the Related Art
Convolutional Coding of Data
It is well known by those skilled in the art, that convolutional coding of transmitted data gives a bit error rate benefit in the receiver compared to uncoded data for the same amount of received noise. A convolutional encoder is implemented by passing the information sequence to be transmitted through a linear finite state shift register. The number of stages in the shift register is called the constraint length as is often denoted by K. In, for example, a rate 1/R code, the binary input data to the coder is shifted into and along the shift register 1 bit at a time. The number of output bits for each input bit is R bits. Some of the bits in the stages of the shift register are exclusive OR'ed together to give the coded bits. A shorthand for denoting which bits are exclusive OR'ed is to use a binary data word e.g. if bit 0, bit 3 and bit 4 were exclusive OR'ed together to give the first coded bit, the shorthand would be 10011. This is usually converted to the octal base to give the octal value of the generator as 23. For a rate 1/R convolutional code, there are R such generators. In the example shown in FIG. 6, this rate ½ code, K=2 code has the octal values of the generators are (2,3).
Binary Phase Shift Keying
The coded bits of a convolutional code are then often transmitted using Binary Phase Shift Keying or BPSK. In BPSK, some arbitrary signal is sent to indicate a binary one and the negative of this signal is sent to indicate a binary zero. The probability of error in a BPSK system is lower for larger signals are because noise or distortion has to move the signal further from its correct shape to make it look more like the wrong signal. An important measure here is the squared Euclidean distance (SED) between the positive and negative signals, and it is usually equal to twice the energy of the individual signals.
If a convolutional code is optimally decoded, the equivalent of the BPSK SED is usually denoted by dfree or just dfree. In this case, this is the SED between the nearest two sequences, rather than the individual signals. The magnitude of dfree is usually found by starting at a particular state, usually state zero, and measuring the SED between the path that stays at state zero and all the possible paths that come back to state zero. The search can be terminated along a particular path if the SED along that path exceeds the minimum found so far. Tables of generators for convolutional codes that have the largest dfree can be found in many communication theory textbooks, e.g., J. G. Proakis (Digital Communications, 2nd edition, McGraw Hill Companies, Inc., New York, N.Y., pp. 466-471, 1989) (“Proakis”).
Combined BPSK and PPM
It has been suggested, e.g., in the submission by M. Welborn to the IEEE 802 TG4a alternate PHY task group in document IEEE 802.15-05-0240-02-004a (May 2005) (“Welborn”) that combined PPM and BPSK can be used so that both a non-coherent and a coherent receiver can receive a signal, albeit with different levels of protection against noise. In the more usual BPSK encoder, the coded bits are mapped directly onto a BPSK signal so that, e.g., zero is mapped onto a certain signal and one onto the negative of this signal i.e. the alternative signals representing one and zero are antipodal. If, for example, the coded bits are taken in pairs or dibits, the mapping would be like that given in Table 1.
TABLE 1BPSK or Antipodal MappingCoded dibitsMapped ontoDistance to 00 dibit0 0−Signal followed by −Signal00 1−Signal followed by +Signal1 × MinD1 0+Signal followed by −Signal1 × MinD1 1+Signal followed by +Signal2 × MinD
With the scheme outlined in Welborn pairs of bits would be mapped so that one of the bits determines the position of the signal and the other gives the sign.
TABLE 2Combined PPM and BPSK non-antipodal MappingCoded dibitsMapped ontoDistance to 00 dibit00−Signal followed by silence001+Signal followed by silence2 × MinD10silence followed by −Signal1 × MinD11silence followed by +Signal1 × MinD
The advantage of this over the pure BPSK type mapping is that one of the bits determines the position of the signal and the other determines the sign. This allows the original signal to be decoded with just position information. A non-coherent receiver has no phase information so it cannot tell if the signal is positive or negative, i.e., the sign of the signal. It does however have information about the magnitude, so it can tell the position. If the inverse operation to the exclusive OR is performed on this position bit, the original uncoded information bit can be recovered.
A further enhancement of the system, which simplifies the non-coherent receiver, is to use a systematic code, i.e., a code where one of the coded bits is actually a delayed version of the information bits and use this bit to encode the position. In this way the non-coherent receiver can directly recover the information by correctly decoding the position of the signal.
A coherent receiver can infer both the position and sign of the signal and so can tell the distance the receive signal is from each of the 4 possible signals which represent the 4 possible dibits. A Viterbi decoder can use this in a soft decoding algorithm to get the full benefit of the convolutional code and thus optimally decode the signal.